/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Interfaces;

/**
 *
 * @author markusbaisch
 */
public interface PhysicsValue<T> extends Value {
    
    // Operationen
    T add( T Value );
    T sub( T Value );
    T mul( double faktor );
    T div( double faktor );
    double div( T Value );
    T inverse();
    //int compareTo( T Value );
    //static T valueOf( double Value );
    
    // Getter
    double getValue();
    String toString();
    int hashCode();

    // Prädikate
    boolean isZero();
    boolean isValid();
}
